/**
 * 
 */
package business;

import java.util.ArrayList;
import java.util.List;

import model.Bestellung;
import db.BestellungSource;
import db.DbManager;

/**
 * @author andris
 *
 */
class BestellungContainer implements BestellungLogik {
	
	private static BestellungContainer instance = null;
	
	public static BestellungContainer getInstance(){
		if(instance == null){
			instance = new BestellungContainer();
		}
		return instance;
	}
	
	private List<Bestellung> bestellungListe = null;
	//private Map<Integer,Bestellung> bestellungMap = null;
	private BestellungSource bestellungSource;
	private boolean isClosed = false;
	
	/**
	 * 
	 */
	private BestellungContainer(){
		initialize();
	}
	
	/**
	 * 
	 */
	private void initialize() {
		if(isClosed)
			throw new IllegalStateException("method invoked on closed instance");

		bestellungSource = DbManager.getInstance();
		
		bestellungListe = bestellungSource.getAllBestellung();
		
		if(bestellungListe == null){
			bestellungListe = new ArrayList<Bestellung>();
		}
		
		System.out.println(bestellungListe);

	}

	/* (non-Javadoc)
	 * @see business.BestellungLogik#getBestellung(int)
	 */
	@Override
	public Bestellung getBestellung(int bestellnummer) {
		
		for(Bestellung bestellung : bestellungListe){
			if(bestellung.getAuftragsnummer() == bestellnummer){
				return bestellung;
			}
		}
		
		return null;
	}

	/* (non-Javadoc)
	 * @see business.BestellungLogik#getBestellungenfuerKunde(int)
	 */
	@Override
	public List<Bestellung> getBestellungenfuerKunde(int kundennummer) {
		List<Bestellung> liste = new ArrayList<Bestellung>();
		
		for(Bestellung bestellung : bestellungListe){
			if( bestellung.getAuftraggeber().getKundennr() == kundennummer ){
				liste.add(bestellung);
			}
		}
		return liste;
	}

	/* (non-Javadoc)
	 * @see business.BestellungLogik#removeBestellung(int)
	 */
	@Override
	public void removeBestellung(int bestellnummer) {
		// TODO Auto-generated method stub

	}

	/* (non-Javadoc)
	 * @see business.BestellungLogik#saveBestellung(model.Bestellung)
	 */
	@Override
	public void saveBestellung(Bestellung bestellung) {
		// TODO Auto-generated method stub

	}

	/* (non-Javadoc)
	 * @see business.BestellungLogik#updateBestellung(model.Bestellung)
	 */
	@Override
	public void updateBestellung(Bestellung bestellung) {
		// TODO Auto-generated method stub

	}

	@Override
	public void close() {
		// TODO Auto-generated method stub
		
	}

}
